package com.social.dao;

import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import oracle.jdbc.OracleTypes;

import org.apache.log4j.Logger;

import utiles.AppProperties;
import utiles.ConexionPool;


import com.rec.dto.ServicioDTO;
import com.social.dto.GratuidadDTO;
import com.social.dto.GratuidadDetDTO;
import com.social.vo.GratuidadDetVO;
import com.social.vo.GratuidadEncVO;

public class GratuidadDAO {
	private static Logger log = Logger.getLogger(GratuidadDAO.class);
	String pkgVar = (AppProperties.getProperty("aplicacion", "PACKAGE"));

	/*
	 * DESARROLLO POR LG :
	 */

	public  List<GratuidadDTO> setGratuidad(GratuidadEncVO gratuidadEncVO) throws SQLException, IOException{
		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    		

		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.setGratuidad(?,?,?,?,?, ?,?,?,?,?, ?,?)}";		
				
			CallableStatement  stmt = conn.prepareCall(query);
			/*
			System.out.println("1 "+gratuidadEncVO.getIdGratuidadEnc());
			System.out.println("2 "+gratuidadEncVO.getRutPac());
			System.out.println("3 "+gratuidadEncVO.getPercenGratuidad());
			System.out.println("4 "+gratuidadEncVO.getTotalPrecioLista());
			System.out.println("5 "+gratuidadEncVO.getTotalGratuidad());
			System.out.println("6 "+gratuidadEncVO.getTotalPac());
			System.out.println("7 "+gratuidadEncVO.getFecInicio());
			System.out.println("8 "+gratuidadEncVO.getVigenteSN());
			System.out.println("9 "+gratuidadEncVO.getIdAreaNegocio());
			System.out.println("10 "+gratuidadEncVO.getidUser());
			*/
			stmt.setString(1,  gratuidadEncVO.getIdGratuidadEnc());
			stmt.setString(2,  gratuidadEncVO.getRutPac());
			stmt.setString(3,  gratuidadEncVO.getPercenPac());
			stmt.setString(4,  gratuidadEncVO.getPercenLiga());
			stmt.setString(5,  gratuidadEncVO.getTotalPrecioLista());
			stmt.setString(6,  gratuidadEncVO.getTotalGratuidad());
			stmt.setString(7,  gratuidadEncVO.getTotalPac());
			stmt.setString(8,  gratuidadEncVO.getFecInicio());
			stmt.setString(9,  gratuidadEncVO.getVigenteSN());			
			stmt.setString(10,  gratuidadEncVO.getIdAreaNegocio());
			stmt.setString(11, gratuidadEncVO.getidUser());
			stmt.registerOutParameter(12, OracleTypes.CURSOR);		
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(12);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				gratuidadDTO.setIdGratuidad(rs.getString(1));
				listRetorno.add(gratuidadDTO);

			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.setGratuidad SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());				
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
			//log.info("Cambios en gratuidad, codigo de retorno:"+idEstado+" ID :"+idMovimiento );						
		}						

		return listRetorno;
	}
	
	
	public List<GratuidadDTO> setGratuidadDetalle(GratuidadDetVO gratuidadDetVO) throws SQLException, IOException{

		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.setGratuidadDetalle(?,?,?,?,?, ?,?,?,?,?) }";
				
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, gratuidadDetVO.getIdGratuidadDet());
			stmt.setString(2, gratuidadDetVO.getIdGratuidadEnc());
			stmt.setString(3, gratuidadDetVO.getIdServicio());
			stmt.setString(4, gratuidadDetVO.getPrecioLista());
			stmt.setString(5, gratuidadDetVO.getPercenPac());
			stmt.setString(6, gratuidadDetVO.getPercenLiga());
			stmt.setString(7, gratuidadDetVO.getPrecioPAC());
			stmt.setString(8, gratuidadDetVO.getFecFin());
			stmt.setString(9, gratuidadDetVO.getVigente());
			stmt.registerOutParameter(10, OracleTypes.CURSOR);		
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(10);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				gratuidadDTO.setIdArea(rs.getString(1));
				gratuidadDTO.setIdGratuidad(rs.getString(2));
				listRetorno.add(gratuidadDTO);

			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.setGratuidadDetalle SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());				
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
			//log.info("Cambios en gratuidad det, codigo de retorno:"+idEstado+" ID :"+idMovimiento );						
		}						

		return listRetorno;
	}
	
	public List<GratuidadDTO> setGratuidadDetalleBorrar(String varIdgratuidadDet) throws SQLException, IOException{

		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    		


		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.setGratuidadDetalleBorrar(?,?) }";
				
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, varIdgratuidadDet);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);		
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				gratuidadDTO.setIdGratuidad(rs.getString(1));
				listRetorno.add(gratuidadDTO);

			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.setGratuidadDetalleBorrar SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());				
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
			//log.info("Cambios en gratuidad det, codigo de retorno:"+idEstado+" ID :"+idMovimiento );						
		}						

		return listRetorno;
	}
	
	public  List<GratuidadDTO> getGratuidad(String idGrat, String rutP, String vige, String areas) throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    	
		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.getGratuidad(?,?,?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, idGrat);
			stmt.setString(2, rutP);
			stmt.setString(3, vige);
			stmt.setString(4, areas);
			stmt.registerOutParameter(5, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(5);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				gratuidadDTO.setIdGratuidad(rs.getString(1)); 
				gratuidadDTO.setRutp(rs.getString(2));
				gratuidadDTO.setPercenPac(rs.getString(3));
				gratuidadDTO.setPercenLiga(rs.getString(4));
				gratuidadDTO.setTotalLista(rs.getString(5));
				gratuidadDTO.setTotalGratuidad(rs.getString(6));
				gratuidadDTO.setTotalPac(rs.getString(7));
				gratuidadDTO.setFecInicio(rs.getString(8));
				gratuidadDTO.setFechaHoraDigitacion(rs.getString(9));
				gratuidadDTO.setVigenteSN(rs.getString(10));
				gratuidadDTO.setIdArea(rs.getString(11));
				gratuidadDTO.setIdUser(rs.getString(12));	
				gratuidadDTO.setUsuario(rs.getString(13));
				gratuidadDTO.setStrArea(rs.getString(14));
				gratuidadDTO.setFecDigitacion(rs.getString(15));
				gratuidadDTO.setFormatLista(rs.getString(16));
				gratuidadDTO.setFormatGratuidad(rs.getString(17));
				gratuidadDTO.setFormatPac(rs.getString(18));
				gratuidadDTO.setModificar(rs.getString(19));

				//System.out.println("% pac:"+rs.getString(3)+", % liga:"+rs.getString(4)+"; lista:"+rs.getString(5));
				listRetorno.add(gratuidadDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.getGratuidad SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
		}
		return listRetorno;
	}

	public  List<GratuidadDetDTO> getGratuidadDetalle(String idGrat) throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    	
		List<GratuidadDetDTO> listRetorno = new ArrayList<GratuidadDetDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.getGratuidadDetalle(?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, idGrat);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);
			while (rs.next()) {
				GratuidadDetDTO gratDetDTO = new GratuidadDetDTO();
				 gratDetDTO.setIdGratuidadDet(rs.getString(1));
				 gratDetDTO.setIdServicio(rs.getString(2));		
				 gratDetDTO.setPrecioLista(rs.getString(3));
				 gratDetDTO.setPercenPac(rs.getString(4));
				 gratDetDTO.setPercenLiga(rs.getString(5));
				 gratDetDTO.setPrecioPAC(rs.getString(6));
				 gratDetDTO.setPrecioLiga(rs.getString(7));
				 gratDetDTO.setFecFin(rs.getString(8));
				 gratDetDTO.setVigente(rs.getString(9));
				 gratDetDTO.setStrServicio(rs.getString(10));
				//System.out.println("ID:"+rs.getString(1)+", PAC:"+rs.getString(6)+"; LIGA:"+rs.getString(7)+", PAC:"+gratDetDTO.getPrecioPAC()+"; LIGA:"+gratDetDTO.getPrecioLiga());
				listRetorno.add(gratDetDTO);				
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.getGratuidadDetalle SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
		}
		return listRetorno;
	}
	
	public List<ServicioDTO> getServiciosByGrupo(String idContra, String idGrupo) throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
		
		List<ServicioDTO> listTP = new ArrayList<ServicioDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.getServiciosByGrupo(?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, idContra);
			stmt.setString(2, idGrupo);
			stmt.registerOutParameter(3, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(3);
			while (rs.next()) {
				ServicioDTO tpDTO = new ServicioDTO();
				tpDTO.setId_producto(rs.getString(1));
				tpDTO.setId_tipo_producto(rs.getString(2));
				tpDTO.setStr_descripcion(rs.getString(3));
				tpDTO.setStr_codigo(rs.getString(4));
				tpDTO.setPreciolista(rs.getString(5));
				listTP.add(tpDTO);
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.getServiciosByGrupo SQLException: " +ex.getMessage());
			System.out.println("Error GratuidadDAO.getServiciosByGrupo SQLException: "+ ex.getMessage());
			System.out.println("Valores	idContra:"+idContra+"; idGrupo:"+idGrupo) ;
		} finally {
			conn.close();
			conn = null;
		}
		return listTP;
	}	
	
	//
	public  List<GratuidadDTO> setGratuidadEliminar(String idGrat, String idUser) throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    	
		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.setGratuidadEliminar(?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, idGrat);
			stmt.setString(2, idUser);
			stmt.registerOutParameter(3, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(3);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				gratuidadDTO.setIdArea(rs.getString(1));
				gratuidadDTO.setIdGratuidad(rs.getString(2));
				listRetorno.add(gratuidadDTO);

			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.setGratuidadEliminar SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
		}
		return listRetorno;
	}
	public  List<GratuidadDTO> setProrrogar(String idGrat, String idUser) throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    	
		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.setProrrogar(?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, idGrat);
			stmt.setString(2, idUser);
			stmt.registerOutParameter(3, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(3);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				gratuidadDTO.setIdArea(rs.getString(1));
				gratuidadDTO.setIdGratuidad(rs.getString(2));
				listRetorno.add(gratuidadDTO);

			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.setProrrogar SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
		}
		return listRetorno;
	}

	/*
	 * DESARROLLO POR EBSYS :
	 *
	
	public  List<GratuidadDTO> getAllGratuidades() throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    		
		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.getGratuidadByRut(?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.registerOutParameter(1, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(1);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				//gratuidadDTO.setIdGratuidadServicio(rs.getString(1));
				//gratuidadDTO.setIdServicio(rs.getString(2));
				gratuidadDTO.setRutp(rs.getString(3));
				//gratuidadDTO.setPrecioLista(rs.getString(4));
				gratuidadDTO.setPercenGratuidad(rs.getString(5));
				//gratuidadDTO.setPrecioPac(rs.getString(6));
				gratuidadDTO.setFecInicio(rs.getString(7));
				//gratuidadDTO.setFecFin(rs.getString(8));
				gratuidadDTO.setVigenteSN(rs.getString(9));	
				//gratuidadDTO.setServicio(rs.getString(10));	
				listRetorno.add(gratuidadDTO);

			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.getAllGratuidades SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
		}
		return listRetorno;
	}

	public List<GratuidadDTO> setInsertGratuidad(GratuidadVO gratuidadVO) throws SQLException, IOException{

		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		int idMovimiento = 0;
		int idEstado     = 0;
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    	
		
		//System.out.println("1:"+gratuidadVO.getIdServicio());
		//System.out.println("2:"+gratuidadVO.getPrecioLista());
		//System.out.println("3:"+gratuidadVO.getPrecioPac());
    	try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.setGratuidadDelUpIns(?,?,?,?,?,?,?,?,?) }";		
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, gratuidadVO.getIdServicio());
			stmt.setString(2, gratuidadVO.getRutp());
			stmt.setString(3, gratuidadVO.getPrecioLista());
			stmt.setString(4, gratuidadVO.getPercenGratuidad());
			stmt.setString(5, gratuidadVO.getPrecioPac());
			stmt.setString(6, gratuidadVO.getFecInicio());
			stmt.setString(7, gratuidadVO.getFecFin());
			stmt.setString(8, "I");
			stmt.registerOutParameter(9, OracleTypes.CURSOR);		
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(9);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				//gratuidadDTO.setServicio(rs.getString(1));
				listRetorno.add(gratuidadDTO);

			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.setInsertGratuidad SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());				
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
			log.info("Cambios en equipo, codigo de retorno:"+idEstado+" ID :"+idMovimiento );						
		}						

		return listRetorno;
	}
	
	public  List<GratuidadDTO> getAllGratuidadesByRut(String rutP) throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    		
		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.getGratuidadByRut(?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, rutP);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();
				//gratuidadDTO.setIdGratuidadServicio(rs.getString(1));
				//gratuidadDTO.setIdServicio(rs.getString(2));
				gratuidadDTO.setRutp(rs.getString(3));
				//gratuidadDTO.setPrecioLista(rs.getString(4));
				gratuidadDTO.setPercenGratuidad(rs.getString(5));
				//gratuidadDTO.setPrecioPac(rs.getString(6));
				gratuidadDTO.setFecInicio(rs.getString(7));
				//gratuidadDTO.setFecFin(rs.getString(8));
				gratuidadDTO.setVigenteSN(rs.getString(9));	
				//gratuidadDTO.setServicio(rs.getString(10));	
				//gratuidadDTO.setSiglaArea(rs.getString(11));			
				listRetorno.add(gratuidadDTO);

			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.getAllGratuidadesByRut SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
		}
		return listRetorno;
	}
	
	public  List<GratuidadDTO> deleteGratuidByID(String idGratuidad) throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    	
		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.deleteGratuidadByID(?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, idGratuidad);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();				
				//gratuidadDTO.setServicio(rs.getString(1));
				//System.out.println("aca>>>"+rs.getString(1));
				listRetorno.add(gratuidadDTO);
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.deleteGratuidByID SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
		}
		return listRetorno;
	}
	
	public  List<GratuidadDTO> setGratuidadVigenByID(String idGratuidad) throws SQLException, IOException{
		//ConexionPool connDao = new ConexionPool();
		Connection conn = ConexionPool.getConnectionPool();	
    	//Connection conn = ((javax.sql.PooledConnection)ConexionPool.getConnectionPool()).getConnection();
    		
		List<GratuidadDTO> listRetorno = new ArrayList<GratuidadDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_SOC_GRATUIDAD.setGratuidadVigenByID(?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, idGratuidad);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);
			while (rs.next()) {
				GratuidadDTO gratuidadDTO = new GratuidadDTO();				
				//gratuidadDTO.setServicio(rs.getString(1));
				System.out.println(">>>"+rs.getString(2));
				listRetorno.add(gratuidadDTO);
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error GratuidadDAO.setGratuidadVigenByID SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {
			//ConexionPool.desconectaPool(conn);
			conn.close();
			conn = null;
		}
		return listRetorno;
	}
*/
}
